package com.douyin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.douyin.dto.PageActionsDTO;
import com.douyin.dto.Result;
import com.douyin.entity.Follows;
import com.douyin.vo.FollowUserVO;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 虎哥
 * @since 2021-12-22
 */
public interface IFollowService extends IService<Follows> {
    /**
     * 用户关注
     * @param followUserId
     * @return
     */
    Result userFollow(Long followUserId);

    /**
     * 分页获取关注列表
     * @param page 分页对象
     * @param targetUserId 目标用户ID
     * @return 包含关注状态的分页结果
     */
    IPage<FollowUserVO> getFollowingList(IPage<FollowUserVO> page, Long targetUserId);

    /**
     * 分页获取粉丝列表
     * @param page 分页对象
     * @param targetUserId 目标用户ID
     * @return 包含关注状态的分页结果
     */
    IPage<FollowUserVO> getFollowersList(IPage<FollowUserVO> page, Long targetUserId);

    Result getFollowings(PageActionsDTO pageActionsDTO);

    Result getFollowers(PageActionsDTO pageActionsDTO);
}
